package cn.sunshine.framework.beans.factory.config;

import cn.sunshine.framework.beans.BeansException;

/**
 * @Description 用于修改新实例化 Bean 对象的扩展点(供用户扩展的), 用户实现这个接口即可
 * @Author Mokairui
 * @Since 2021/12/11
 */
public interface BeanPostProcessor {

    /**
     * 在 Bean 对象执行初始化方法之前, 执行此方法
     * @param bean
     * @param beanName
     * @throws BeansException
     */
    Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;

    /**
     * 在 Bean 对象执行初始化方法之后, 执行此方法
     * @param bean
     * @param beanName
     * @throws BeansException
     */
    Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;

}
